home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD Exchange
/
CD Exchange - Volume 1.iso
/
d.t.p
/
utils
/
others
/
pcal
/
readme
< prev
next >
Wrap
Text File
|
1992-02-21
|
8KB
|
189 lines
"Pcal" Version 4.3
This is a new release of "Pcal", the PostScript calendar program. (An earlier
release, 4.2, was not distributed publicly.)
Major changes:
1) Of interest to Pcal hackers, installers, and power users :-) :
. The promised comments about X_OK in pcalutil.c are now actually there.
. Pcal now generates debugging information (see -Z flag below).
2) New command-line options:
. The "-c" flag has been added; this directs Pcal to generate a date
file suitable for input to the Un*x "calendar" utility (instead of
a PostScript file). This file may also be used as input for
subsequent runs of Pcal, but be forewarned that "opt" lines,
preprocessing directives, comments, etc. will be lost. (Idea
courtesy of Bruce Mohler.)
. The "-k" and "-K" flags have been added. The former moves the two
small calendars to the first two boxes (upper-left corner) while
the latter splits them so the previous month is in the first box
and the next month is in the last. Should there be a conflict
with a date, the body of the calendar is moved down one row. (Why
"-[kK]"? Well, "k" sort of sounds like "calendar", and anyway all
the letters that made any more sense were taken.)
. The "-N" flag has been added; this allows the user to override the
default "Notes" header in the notes box. If set to "", Pcal will
not print a header in the notes box.
. The "-u" flag has been added; this prints the version information
and parameter usage message to stdout and terminates normally.
. The "-s" flag has been added; this allows the user to override the
default values for date and/or fill box shading. For example,
-s 0.45/0.98
sets the date shading to 0.45 (white = 1, black = 0) and the fill box
shading to 0.98; this looks good on the whole-year calendars. The
date and fill box shading values may be changed independently; e.g.
"-s 0.45" or "-s /0.98".
. The "-S" flag has been added; this suppresses generation of the
small calendars in the lower right corner, thus freeing two more
boxes for notes (cf. "note/<number>" below.
. The "-Z" flag has been added to print debugging information of interest
primarily to Pcal hackers. This flag is a "hidden" flag; it does not
appear on the man page or as part of the usage message. At present,
the following options are supported:
-ZD print dates and text as read from date file
-ZF print date file search paths
-ZM print moon phases and identify quarters
-ZO print option flags and where set
-ZP print "preprocessor" debug info
-ZT print dates and text as written to output file
-Z turn off all debugging info
The subflags may be combined: e.g., "-ZDF" is equivalent to "-ZD -ZF".
All of the aforementioned debugging information is written to stderr.
(This brings the grand total up to 42 flags; -[aiqrHPQTVW] are still
unused.)
3) New date file functionality:
. The file name in the "include" directive may contain the string "%y",
which will be replaced by the last two digits of the current year.
. Wildcards "new_moon", "first_quarter", "full_moon", and "last_quarter"
(plus appropriate synonyms) are now accepted in the date file.
. If the "-w" flag has been specified (in PCAL_OPTS, on the command
line, or in an "opt" line), Pcal automatically defines the symbol
"whole_year". This allows the user to specify different "gray"
character styles and densities, alternate foot strings, etc.,
depending on whether s/he is generating a single month or a full year:
ifdef whole_year
opt -s 0.45/0.98 # improve contrast in whole-year mode
endif
. The keyword "nearest" has been added, allowing constructs such as
"workday nearest every 10th". (Thanks to Andy Fyfe for the idea
and code.) In this example, Pcal would look first at the 10th,
then at the 11th, 9th, 12th, 8th, etc. until a workday is found.
(If you would prefer to disambiguate "nearest" in favor of the
earlier date, see the comments by "NEAREST_INCR" in pcaldefs.h.)
. The preprocessor now accepts "if" as a synonym for "ifdef".
. The preprocessor now accepts "elif" as per most recent flavors of
cpp; "elif A" is true if A is defined. Multiple "elif" clauses
are allowed; as in cpp, at most one "if{{n}def}", "elif", or "else"
clause will be processed per block.
. The user may place "Notes" text in any empty box: Pcal now supports
"note/<n>", where <n> is a positive or negative integer. If <n>
is positive, Pcal counts forward from the first empty box; if
negative, backward from the last. Default is -1 (last empty box:
as before, on the bottom row adjacent to the small calendars
unless -S is specified). (Thanks to Geoff Kuenning for the idea.)
4) Other new functionality:
. A new message, "no match for wildcard", has been added.
. The date sizes for the small and medium calendars have been enlarged
for legibility.
. If Pcal can't find the moon file in the date file's directory, it
looks in the directory where the Pcal executable lives. This allows
all users to access the same moon file; in fact, they need not even
know of its existence.
. The "%u" and "%w" format specifiers have been added. These behave
much like "%U" and "%W" except that they treat the week containing
January 1 (instead of the first full week) as week 01, as done by
some companies.
. The %{[+-]<n>}[DWMY] format specifiers have been added. These do
not print anything per se, but instead adjust the working date by
[+-]<n> days (D), weeks (W), months (M), or years (Y); subsequent
format specifiers reference the adjusted date. %D or %M alone
reset the original date.
Since the above format specifiers do not print anything, expand_fmt()
and print_word() were revised further to avoid generating null words.
. The "moon92" file has been supplied.
. The user may now override the default notes font size as well as
the font name:
pcal -n Helvetica/8
sets the font to 8-point Helvetica. (This is the easy one. User
override of the other font sizes may appear later.)
5) Bug fixes:
. The algorithm for finding the date file has been changed slightly:
pcal searches the current directory before PCAL_DIR for a user-
defined date file. More importantly, the man page has been
rewritten to accurately describe the search algorithm; the
documentation had never been correct.
. Pcal no longer requires a space between -[LCRN] and the following
quoted string in an "opt" line; loadwords() has been made smart enough
to split the flag and the string into separate words.
. Pcal has been made much smarter about escape sequences (octal or
hex formats) and now handles them on the command line in addition
to "opt" lines in the date file.
. MIN_ORD_LEN has been expanded from 3 to 4 in order to distinguish
"every" from "even".
. is_quarter() has been revised to eliminate the occasional duplicate
(1/92) or missing (12/92) quarter moon in -m mode.
Credits:
The original calendar PostScript was Copyright (c) 1987 by Patrick Wood
and Pipeline Associates, Inc. with permission to modify and redistribute.
Many others have worked on it since; see the Orig.ReadMe file and topline
comments in pcal.c.
The following people contributed to Pcal v4.2 and v4.3:
Overall coordinator: Joe Brownlee
"nearest" keyword: Andy Fyfe
"note/n" suggestion: Geoff Kuenning
VMS support, moon phase algorithm: Richard Dyson
"-c" suggestion, new SYNOPSIS for man page: Bruce Mohler
Other C and PostScript code: Andrew Rogers